package com.wispx.gateway.config.config;

import lombok.Data;

/**
 * Http客户端配置（这里使用的是 Netty的eventLoopGroup，用于向下游服务转发请求）
 */
@Data
public class HttpClientConfig {

    /**
     * eventLoopGroupWorker 线程数，处理 read/write 读写请求
     */
    private int eventLoopGroupWorkerNum = Runtime.getRuntime().availableProcessors() * 2;

    /**
     * http 连接超时时间，单位 ms
     */
    private int httpConnectTimeout = 60 * 1000;

    /**
     * http 请求超时间，单位 ms
     */
    private int httpRequestTimeout = 30 * 1000;

    /**
     * 最大重定向数
     */
    private int httpMaxRedirects = 3;

    /**
     * 最大重试次数
     */
    private int httpMaxRequestRetry = 3;

    /**
     * 客户端最大连接数
     */
    private int httpMaxConnections = 10 * 1000;

    /**
     * 每个客户端示例最大连接数
     */
    private int httpMaxConnectionsPerHost = 6 * 1000;

    /**
     * 客户端空闲连接超时时间，单位 ms
     */
    private int httpPoolConnectionIdleTimeout = 60 * 1000;
}
